package com.czkevin.cifjiaocheng;

import de.tr7zw.nbtapi.NBTCompound;
import com.czkevin.cif.BaseItem;
import com.czkevin.cif.CIFItemInstance;
import com.czkevin.cif.CustomItemFramework;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.SoundCategory;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;

import java.util.Arrays;
import java.util.List;

/**
 * 测试物品
 */
public class CeShiWuPin extends BaseItem {
    @Override
    public String getDisplayName(NBTCompound nbtCompound) {
        return "\u00a7c\u00a7l目力先辈的物品";
    }


    private static final List<String> LORE = Arrays.asList(
        "\u00a77==================",
        "\u00a7d一个非常厉害的测试物品",
        "\u00a7d使用之后会瞬间趋势！",
        "\u00a77=================="
    );
    /**
     * 返回Lore
     * @param instance
     * @return
     */
    @Override
    public List<String> getLore(CIFItemInstance instance) {
        return LORE;
    }

    /**
     * 在手里点击的时候执行这个
     * @param instance
     * @param event
     */
    @Override
    public void onUseInHand(CIFItemInstance instance, PlayerInteractEvent event) {
        // 如果不是右手就不处理
        if(event.getHand() != EquipmentSlot.HAND) return;

        // 发送文字
        event.getPlayer().sendMessage("\u00a7c你嗝儿屁了！");

        // 发送声音
        Location 位置 = event.getPlayer().getLocation();
        位置.getWorld().playSound(位置,
            "jiaocheng.echou.random", // 恶臭的声音
            SoundCategory.MASTER, // 主声音，不是哲学！！！
            1.0f, // 音量
            1.0f    // 音高
        );

        // 瞬间趋势
        // event.getPlayer().damage(1000000f);

        // 致盲
        event.getPlayer().addPotionEffect(new PotionEffect(
            PotionEffectType.BLINDNESS, 99999, 1, false, false, false
        ));

        // 晕眩
        event.getPlayer().addPotionEffect(new PotionEffect(
            PotionEffectType.CONFUSION, 99999, 10, false, false, false
        ));

        // 缓慢扣血，10秒之后彻底嗝儿屁
        Bukkit.getScheduler()
            .runTaskLater(CustomItemFramework.getInstance(), () -> {
                event.getPlayer().damage(1d);
            }, 1L);
        Bukkit.getScheduler()
            .runTaskLater(CustomItemFramework.getInstance(), () -> {
                event.getPlayer().damage(3d);
            }, 10L);
        Bukkit.getScheduler()
            .runTaskLater(CustomItemFramework.getInstance(), () -> {
                event.getPlayer().damage(5d);
            }, 40L);
        Bukkit.getScheduler()
            .runTaskLater(CustomItemFramework.getInstance(), () -> {
                event.getPlayer().damage(100000d);
            }, 100L);
    }

    /**
     * 返回模型
     * @return
     */
    @Override
    public Material getModelMaterial() {
        return Material.DIAMOND; // 继承的模型 设置什么都可以
    }

    @Override
    public int getCustomModelData(CIFItemInstance instance) {
        return 114514; // 模型的编号
    }

    @Override
    public boolean isBlock() {
        return false;
    }
}
